using System.Collections;
using Curriculum.LectoresXML.LectorMetadatos;
using Curriculum.Metadatos.ClasesMetadatos;

namespace Curriculum.Manejadores
{
	/// <summary>
	/// Summary description for ManejadorListasValores.
	/// </summary>
	public class ManejadorListasValores
	{
		private Valores valores;
		
		public ManejadorListasValores(string nroVersion)
		{
			LectorListaValores lector = new LectorListaValores();
			valores = lector.Leer(nroVersion);
		}
		public ManejadorListasValores():this(string.Empty) 
		{}

		public IList GetListaValores(string idAntecedente, string idAtributo)
		{
			IList listaValores = new ArrayList();
			foreach(ItemValor oItemValor in valores.ItemValor)
			{
				if(oItemValor.idAntecedente == idAntecedente &&
				   oItemValor.idAtributo == idAtributo)
				{
					ItemLista itemLista = new ItemLista();
					itemLista.Id = oItemValor.id;
					itemLista.Valor= oItemValor.valor;
					listaValores.Add(itemLista);
				}
			}
			return listaValores;
		}
		public ItemValor GetItemListaValores(string IdItemLista)
		{
			foreach(ItemValor oItemValor in valores.ItemValor)
			{
				if(oItemValor.id == IdItemLista)
				{
					return oItemValor;
				}
			}
			return null;
		}

		public void AgregarNuevoItem(ItemValor item)
		{
			ArrayList listaAux = new ArrayList();

			if ((valores != null) && (valores.ItemValor != null))
			{
				foreach (ItemValor i in valores.ItemValor)
				{
					listaAux.Add((i));
				}				
			}
			
			listaAux.Add(item);

			valores = new Valores();
			valores.ItemValor = new ItemValor[listaAux.Count];			
			listaAux.CopyTo(valores.ItemValor);
		}

		public void GuardarListaValoresEnXML()
		{
			GuardarListaValoresEnXML(string.Empty);
		}

		public void GuardarListaValoresEnXML(string nroVersion)
		{
			LectorListaValores lector = new LectorListaValores();
			lector.Escribir(valores, nroVersion);
		}		

		public void GuardarListaValoresEnXML(Valores valoresXML)
		{
			LectorListaValores lector = new LectorListaValores();
			lector.Escribir(valoresXML, "");
		}		
	}
}
